package com.zxx.flowerstore.utils.common;

import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

/**
 * @ClassName HighArray
 * @Author Admin
 * @Date 2021/3/20 17:36
 * @Description HighArray
 * @Version 1.0
 */
public class HighArray {
    private final static int OFFSET = 538309;

    public static String MobileVfCode() {
        long seed = System.currentTimeMillis() + OFFSET;
        SecureRandom secureRandom = null; // 安全随机类
        try {
            secureRandom = SecureRandom.getInstance("SHA1PRNG");
            secureRandom.setSeed(seed);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        String codeList = "1234567890"; // 验证码数字取值范围
        // String sRand = ""; // 定义一个验证码字符串变量

        StringBuffer sRand = new StringBuffer(""); // 定义一个验证码字符串变量

        for (int i = 0; i < 6; i++) {
            int code = secureRandom.nextInt(codeList.length() - 1); // 随即生成一个0-9之间的整数
            String rand = codeList.substring(code, code + 1);
//            sRand += rand; // 将生成的随机数拼成一个六位数验证码

            sRand.append(rand); // 将生成的随机数拼成一个六位数验证码
        }
//        return sRand; // 返回一个六位随机数验证码

        return sRand.toString(); // 返回一个六位随机数验证码

    }

    //随机生成十位数ValidCode码，用于邮件的验证
    public static String generateMailValidCode() {
        long seed = System.currentTimeMillis() + OFFSET;
        SecureRandom secureRandom = null; // 安全随机类
        try {
            secureRandom = SecureRandom.getInstance("SHA1PRNG");
            secureRandom.setSeed(seed);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        String codeList = "ABCDEFGHIJKLMNOPQRSTUVWXYZabckefghijklmnopqrstuvwxyz1234567890"; // 验证码数字取值范围
        // String sRand = new String(""); // 定义一个验证码字符串变量

        StringBuffer sRand = new StringBuffer(""); // 定义一个验证码字符串变量

        for (int i = 0; i < 10; i++) {
            int code = secureRandom.nextInt(codeList.length() - 1); // 随即生成一个整数
            String rand = codeList.substring(code, code + 1);
            //sRand += rand; // 将生成的随机数拼成一个十位数验证码

            sRand.append(rand); // 将生成的随机数拼成一个十位数验证码
        }
//        return sRand; // 返回一个六位随机数验证码

        return sRand.toString(); // 返回一个六位随机数验证码
    }

}
